Conventionally, an operation system (OS) or a file system may carry out defragmentation of data stored in a storage device, such as NAND flash memory. FIG. 1 schematically illustrates an example of a logical defragmentation operation carried out by a file system. (a) of FIG. 1 illustrates data fragmented as a result of data modification. When data of a file (e.g., “abc.dat”) are generated, the data are sequential in each of the file system, a logical address space (LBA space), and a physical address space, as shown as data A in (a) of FIG. 1. When part of data A of the file is modified (overwritten), a new LBA region, which may be not sequential to the LBA region of the data A, is assigned for the modified data (data B). Also, the data B is written into a new physical address, which may be not sequential to the physical address region of the data A, as shown in (a) of FIG. 1.
(b) of FIG. 1 illustrates states of the file system, the LBA space, and the physical address space after the defragmentation is carried out by the OS or the file system. As shown in (b) of FIG. 1, through the defragmentation, the LBA region of the data B is moved to a LBA region that is sequential to the LBA region of the data A. In accordance with the move of the LBA region, the data B may be written into another physical address associated with the new LBA region. Since the LBA regions of the file are sequential, the file can be accessed more quickly and more efficiently.